package com.quan.whizenoa.data.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;
import java.time.LocalDateTime;

import org.springframework.format.annotation.DateTimeFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import com.quan.commons.vo.BaseEntity;

/**
 * 员工信息
 *
 * @author yhaoquan
 * @email yhaoquan@163.com
 * @date 2023-02-18 17:14:01
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@TableName("oa_hr_user")
public class OaHrUser extends BaseEntity implements Serializable{
private static final long serialVersionUID=1L;

    /**
     * 主键
     */
    @TableId
    private String id;

    /**
     * 工号
     */
    @NotNull(message = "工号不能为空")
    private String sysWorkNo;

    /**
     * 姓名
     */
    @NotNull(message = "姓名不能为空")
    private String name;

    /**
     * 性别
     */
    @NotNull(message = "性别不能为空")
    private String sex;

    /**
     * 部门ID
     */
    @NotNull(message = "部门ID不能为空")
    private String sysDepartId;

    /**
     * 职务
     */
    @NotNull(message = "职务不能为空")
    private String sysPost;

    /**
     * 入社日
     */
    @NotNull(message = "入社日不能为空")
    @DateTimeFormat(pattern = "yyyy-MM-dd ")
    private LocalDate joinDate;

    /**
     * 来源
     */
    private String source;

    /**
     * 工龄
     */
    private Integer siling;

    /**
     * 实习日
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd ")
    private LocalDate practiceDate;

    /**
     * 培训日
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd ")
    private LocalDate trainDate;

    /**
     * 试用日
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd ")
    private LocalDate trialDate;

    /**
     * 就业登记
     */
    private String employRegiste;

    /**
     * 开始日
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd ")
    private LocalDate startDate;

    /**
     * 结束日
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd ")
    private LocalDate endDate;

    /**
     * 毕业院校
     */
    private String university;

    /**
     * 专业
     */
    private String major;

    /**
     * 学历
     */
    private String educationLevel;

    /**
     * 毕业时间
     */
    private String graduatTime;

    /**
     * 日语等级
     */
    private String japaneseGrade;

    /**
     * 英语等级
     */
    private String englishGrade;

    /**
     * 身份证号码
     */
    private String idCardNo;

    /**
     * 籍贯
     */
    private String nativePlace;

    /**
     * 出生年月日
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd ")
    private LocalDate birthday;

    /**
     * 婚姻状况
     */
    private String marriageStatus;

    /**
     * 户口所在地
     */
    private String domicilePlace;

    /**
     * 户口性质
     */
    private String domicileProp;

    /**
     * 联系电话
     */
    @NotNull(message = "联系电话不能为空")
    private String telephone;

    /**
     * 家庭电话
     */
    private String phoneNo;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 在职状态(0:在职,1:停薪留职,2:离职)
     */
    @NotNull(message = "在职状态(0:在职,1:停薪留职,2:离职)不能为空")
    private String userStatus;

    /**
     * 续工龄
     */
    private Integer silingAdd;

    /**
     * 预离职(0：正常、1：预离职)
     */
    private String leaveStatus;

    /**
     * 备注
     */
    private String remarks;

    /**
     * 创建人
     */
    private String createBy;

    /**
     * 创建日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 更新人
     */
    private String updateBy;

    /**
     * 更新日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    /**
     * 所属部门
     */
    private String sysOrgCode;

    /**
     * 删除标记
     */
    private String delFlag;


}
